﻿#region License
// MIT License
//
// Copyright(c) 2019-2025 ZhangYu
// https://gitee.com/zhangyu800/litebyte
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#endregion
#region Intro
// Purpose: Define lexical analyze token type
// Author: ZhangYu
// CreateDate: 2019-10-20
// LastModifiedDate: 2025-02-06
#endregion
namespace LiteByte.Analyzers {

    /// <summary> Token类型 | Token type </summary>
    public enum TokenTag {
        None,
        /// <summary> 片段 </summary>
        Segment,
        /// <summary> 逗号 , </summary>
        Comma,
        /// <summary> 冒号 : </summary>
        Colon,
        /// <summary> 分号 ; </summary>
        Semicolon,
        /// <summary> 求余 % </summary>
        Mod,
        /// <summary> 等号 = </summary>
        Equal,
        /// <summary> 问号 ? </summary>
        Question,
        /// <summary> 按位与 &amp; </summary>
        BitwiseAnd,
        /// <summary> 按位或 | </summary>
        BitwiseOr,
        /// <summary> 按位异或 ^ </summary>
        BitwiseXOR,
        /// <summary> 按位取反 ~ </summary>
        BitReverse,
        /// <summary> 逻辑非 ! </summary>
        LogicNot,
        /// <summary> 左括号 ( </summary>
        LParen,
        /// <summary> 右括号 ) </summary>
        RParen,
        /// <summary> 左大括号 { </summary>
        LBrace,
        /// <summary> 右大括号 } </summary>
        RBrace,
        /// <summary> 左方括号 &lt; </summary>
        LAngle,        // 
        /// <summary> 左方括号 &gt; </summary>
        RAngle,
        /// <summary> 左方括号 [ </summary>
        LSquare,
        /// <summary> 右方括号 ] </summary>
        RSquare,
        /// <summary> 加号 + </summary>
        Plus,
        /// <summary> 减号 - </summary>
        Minus,
        /// <summary> 乘号 * </summary>
        Multiply,
        /// <summary> 除号 / </summary>
        Divide,
        /// <summary> 标识符 </summary>
        Identifier,
        /// <summary> 访问修饰符 </summary>
        AccessModifier
    }

}